package com.dd.cloud.user.req.pres;

import com.dd.cloud.common.annotate.FileSuffix;
import com.dd.cloud.user.req.phar.PresCreateCreamFormulaReq;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.List;

/**
 * @author xt
 */
@Data
public class PresPharmacistsReq {

    /**
     * 诊断id
     */
    private Integer diagnosticId;


    /**
     * 是否ai开方 1是 0否 默认1
     */
    private Integer isAiPres = 1;

    /**
     * 就诊卡id
     */
    private String medId;

    /**
     * 如果是女性角色, 是否怀孕 0否 1是
     */
    private Integer pregnant = 0;


    /**
     * 科室名称
     */
    private String depName;

    /**
     * 症状
     */
    private String symptomList;

    /**
     * 疾病
     */
    private String disease;

    /**
     * 辩证诊断
     */
    private String dialectical;

    /**
     * 每日剂数
     */
    private Integer dayDose;

    /**
     * 处方编号
     */
    private String tencode;

    /**
     * 总剂数
     */
    private Integer allDose;

    /**
     * 包装量 条件必填
     * 每袋药业装量，请填入数字如 200，
     * 150,100，50 (包装量请传入大于等
     * 于 50并且小于等 280)建议设置为可
     * 选项
     */
    private Integer packagenum;

    /**
     * 药品金额 必填 分单位
     */
    private Integer money;

    /**
     * 药品原价金额
     */
    private Integer presOriginalMoney;

    /**
     * 折扣药品金额 分单位
     */
    private Integer discountMoney;

    /**
     * 诊疗费 必填 分单位
     */
    private Integer consultationFee = 0;

    /**
     * 服务费 必填 分单位
     */
    private Integer serviceFee = 0;

    /**
     * 物流费 分单位
     */
    private Integer expensesFee = 0;

    /**
     * 代煎费 分单位
     */
    private Integer fryingFee = 0;

    /**
     * 膏方费/蜂密价格 根据type区分
     */
    private Integer otherFee = 0;

    /**
     * 备注
     */
    private String remark;

    /**
     * 类型 我方剂型
     */
    private Integer presType;

    /**
     * 预计出粉量
     */
    private String outPut;

    /**
     * 出量天数
     */
    private String useDay;

    /**
     * 目数
     */
    private String num;


    /**
     * 医嘱
     */
    @Size(max = 500, message = "医嘱字符不能超过500个字符")
    private String advice;

    /**
     * 疗期医嘱
     */
    @Size(max = 500, message = "疗期医嘱字符不能超过500个字符")
    private String treatAdvice;

    /**
     * 药品用法说明
     */
    @Size(max = 200, message = "用法补充不能超过200个字符")
    private String drugUsage;

    /**
     * 用药方式
     */
    private String useDrugWay;

    /**
     * 每剂次数
     */
    private Integer doseNum;

    /**
     * 每袋药业装量 默认280g  //粉剂有字符串
     */
    private Integer drugDose;

    /**
     * 表外字段, 待审药品列表
     */
    @Size(min = 1,message = "处方药品不能为空")
    private List<PresCreateDrugsReq> tcms;

    /**
     * 膏方列表(选择膏方必须要有)
     */
    private List<PresCreateCreamFormulaReq> creamFormulaReqs;



    /**
     * 应用来源, 默认公众号, 如果是小程序, 值为applet
     */
    private String apply;

    /**
     * 是否修改处方信息 0否 1是
     */
    private Integer isUpdate = 0;



    /**
     * 来源类型 1医生处方 2智能处方 3医生处方(问诊) 4智能处方(问诊)
     */
    private Integer sourceType;

    /**
     * 是否显示药品 0否 1是
     */
    private Integer drugShow = 1;

    /**
     * 是否显示药品用量 0否 1是
     */
    private Integer drugDoseShow = 1;

    /**
     * 中医诊断名
     */
    private String zyName;

    /**
     * 中医诊断编码
     */
    private String zyCode;

    /**
     * 患者信息
     */
    private String patientJson;

    /**
     * 患者收货地址信息
     */
    private String addrJson;

    /**
     * 患者信息
     */
    @Valid
    private PresPatientReq patientReq;

    /**
     * 患者收货地址信息
     */
    private PresPatientAddrReq addrReq;

    /**
     * 重量 后端自用
     */
    private BigDecimal weightKg;

    /**
     * 起订量
     */
    private String minWeight;

    /**
     * 地址
     */
    private String address;

    /**
     * 过敏史
     */
    private String drugAllergyHistory;

    /**
     * 诊断名
     */
    private String diagnosticName;

    /**
     * 线下疾病选择
     */
    private String offlineDisease;

    /**
     * 是否为免费问诊开方 1.是 0.否
     */
    private Integer isFree = 0;

    /**
     * 是否代煎
     */
    private  Integer isFrying;


}
